<HTML>
<HEAD>
  <!-- Created with AOLpress/2.0 -->
  <!-- AP: Created on: 29-Dec-2002 -->
  <!-- AP: Last modified: 24-Feb-2009 -->
  <TITLE>Char Info</TITLE>
  <LINK REL="icon" href="fftype16.png">
  <LINK REL="stylesheet" TYPE="text/css" HREF="FontForge.css">
</HEAD>
<BODY id="menued">
<P ALIGN=CENTER>
<IMG SRC="fontforge-banner-420.jpeg" WIDTH=420 HEIGHT=80>
<DIV class="menucontainer">
  <UL class="menubar">
    <LI class="menu">
      <A href="http://sourceforge.net/projects/fontforge/files/">Download</A>
      <UL>
	<LI>
	  <A href="http://sourceforge.net/projects/fontforge/files/fontforge-docs/"
	      >Documentation</A>
	<LI>
	  <A href="http://sourceforge.net/projects/fontforge/files/fontforge-source/"
	      >Source</A>
      </UL>
    <LI>
      <A HREF="overview.html#TOC">Introduction</A>
    <LI>
      <A href="editexample.html">Tutorial</A>
    <LI class="menu">
      <A href="fontview.html">Windows</A>
      <UL>
	<LI>
	  <A href="fontview.html" >Font</A>
	<LI>
	  <A href="charview.html" >Outline Glyph</A>
	<LI>
	  <SMALL><A href="charview.html#Debugging" >&nbsp; &nbsp;Debugging
	  TrueType</A></SMALL>
	<LI>
	  <SMALL><A href="multilayer.html" >&nbsp; &nbsp;Type3 Glyphs</A></SMALL>
	<LI>
	  <A href="bitmapview.html" >Bitmap Glyph</A>
	<LI>
	  <A href="metricsview.html" >Metrics</A>
      </UL>
    <LI class="menu">
      <A href="fontinfo.html">Dialogs 1</A>
      <UL>
	<LI>
	  <A href="fontinfo.html" >Font Information</A>
	<LI>
	  <SMALL><A href="histogram.html" >&nbsp; &nbsp;Histogram Dialog</A></SMALL>
	<LI>
	  <A href="charinfo.html" >Glyph Information</A>
	<LI>
	  <A href="getinfo.html" >Point, Reference Information</A>
	<LI>
	  <A href="multilayer.html#Layer" >Type3 Layer Information</A>
	<LI>
	  <A href="bdfinfo.html" >Bitmap Properties</A>
	<LI>
	  <A href="baseline.html" >Baseline Information</A>
	<LI>
	  <A HREF="justify.html">Justification Information</A>
	<LI>
	  <A href="math.html" >Math Information</A>
	<LI>
	  <A href="multiplemaster.html" >Multiple Master Information</A>
	<LI>
	    <HR>
	<LI>
	  <A href="lookups.html" >Lookups &amp; subtables</A>
	<LI>
	  <A href="metricsview.html#kernpair" >Kerning glyph pairs 1</A>
	<LI>
	  <A href="kernpairs.html" >Kerning glyph pairs 2</A>
	<LI>
	  <A href="metricsview.html#kernclass" >Kerning by classes</A>
	<LI>
	  <A href="anchorcontrol.html" >Anchor Control</A>
	<LI>
	  <A href="contextchain.html" >Contextual lookup dialog</A>
	<LI>
	  <A href="statemachine.html" >Apple State Machine dialog</A>
	<LI>
	  <A href="showatt.html" >Show Advanced Typography</A>
	<LI>
	    <HR>
	<LI>
	  <A href="problems.html" >Potential Problems dialog</A>
	<LI>
	  <A href="validation.html" >Font Validation dialog</A>
      </UL>
    <LI class="menu">
      <A href="generate.html">Dialogs 2</A>
      <UL>
	<LI>
	  <A href="filemenu.html#Open" >Open Fonts dialog</A>
	<LI>
	  <A href="oflib.html" >Browsing OFLib dialog</A>
	<LI>
	  <A href="generate.html" >Generate Fonts dialog</A>
	<LI>
	  <A href="generate.html#Mac" >Generate Mac Family dialog</A>
	<LI>
	    <HR>
	<LI>
	  <A href="display.html" >Print &amp; Display dialog</A>
	<LI>
	  <A href="prefs.html" >Preferences dialog</A>
	<LI>
	  <A href="groups.html" >Groups dialog</A>
	<LI>
	    <HR>
	<LI>
	  <A href="elementmenu.html#Bitmaps">Manage Bitmap Strikes</A>
	<LI>
	  <A href="elementmenu.html#Regenerate">Re-Rasterize Bitmap Strikes</A>
	<LI>
	    <HR>
	<LI>
	  <A href="search.html" >Search &amp; Replace dialog</A>
	<LI>
	  <A href="Styles.html" >Style Transformation dialogs</A>
	<LI>
	  <A href="transform.html" >Transformation dialog</A>
	<LI>
	  <A href="elementmenu.html#Expand" >Expand Stroke dialog</A>
	<LI>
	  <A href="tilepath.html" >Tile Path dialog</A>
	<LI>
	  <A href="InsertTextDlg.html" >Insert Text dialog</A>
	<LI>
	    <HR>
	<LI>
	  <A href="metricsmenu.html#Width">Set width dialogs</A>
	<LI>
	  <A href="metricsmenu.html#Width">Set left/right bearings</A>
	<LI>
	  <A href="autowidth.html" >Auto Width &amp; Kern dialogs</A>
	<LI>
	    <HR>
	<LI>
	  <A href="hintsmenu.html#Review" >Review PS Hints dialog</A>
	<LI>
	  <A href="ttfinstrs.html" >TrueType Instruction Editor</A>
	<LI>
	  <A href="ttfinstrs.html#cvt" >TrueType 'cvt ' Editor</A>
	<LI>
	    <HR>
	<LI>
	  <A href="selectbyatt.html" >Select by feature dialog</A>
	<LI>
	  <A href="elementmenu.html#MassRename" >Rename Glyphs dialog</A>
	<LI>
	  <A href="elementmenu.html#CompareFonts" >Compare Fonts dialog</A>
      </UL>
    <LI class="menu">
      <A href="filemenu.html">Menus</A>
      <UL>
	<LI>
	  <A href="filemenu.html" >File</A>
	<LI>
	  <A href="editmenu.html" >Edit</A>
	<LI>
	  <A href="pointmenu.html" >Point</A>
	<LI>
	  <A href="elementmenu.html">Element</A>
	<LI>
	  <A href="toolsmenu.html">Tools</A>
	<LI>
	  <A href="hintsmenu.html" >Hints</A>
	<LI>
	  <A href="encodingmenu.html" >Encoding</A>
	<LI>
	  <A href="viewmenu.html" >View</A>
	<LI>
	  <A href="metricsmenu.html" >Metrics</A>
	<LI>
	  <A href="cidmenu.html" >CID</A>
	<LI>
	  <A href="mmmenu.html" >Multi Master</A>
	<LI>
	  <A href="windowmenu.html" >Window</A>
	<LI>
	  <A href="helpmenu.html" >Help</A>
      </UL>
    <LI>
      <A href="faqFS.html">FAQ</A>
    <LI>
      <A href="IndexFS.html">Index</A>
    <LI>
      <A href="GlossaryFS.html">Glossary</A>
  </UL>
</DIV>
<DIV id="in">
  <H1 ALIGN=Center>
    Glyph Info
  </H1>
  <H2>
    <IMG SRC="charinfo.png" WIDTH="545" HEIGHT="508" ALIGN="Right">
    <A NAME="Character">Glyph</A> Info
  </H2>
  <UL>
    <LI>
      <A HREF="charinfo.html#Unicode">Encoding and Unicode data</A>
    <LI>
      <A HREF="charinfo.html#comment">Glyph Comment</A>
    <LI>
      <A HREF="charinfo.html#position">Simple Glyph Positioning </A>(GPOS)
    <LI>
      <A HREF="charinfo.html#pairwise">Pair-wise Glyph Positioning (kerning)
      </A>(GPOS)
    <LI>
      <A HREF="charinfo.html#substitution">Glyph Simple Substitution</A> (GSUB,
      morx)
    <LI>
      <A HREF="charinfo.html#multiple">Glyph Alternate Substitution</A> (GSUB)
    <LI>
      <A HREF="charinfo.html#multiple">Glyph Multiple Substitution</A> (GSUB)
    <LI>
      <A HREF="charinfo.html#ligature">Glyph Ligature Substitution </A>(GSUB, morx)
    <LI>
      <A HREF="charinfo.html#components">Components</A>
    <LI>
      <A HREF="#CounterMasks">Counter Masks</A>
    <LI>
      <A HREF="#TeX">TeX &amp; Math</A>
    <LI>
      <A HREF="#Variants">Variants</A>
    <LI>
      <A HREF="#TileSize">Tile Size</A>
  </UL>
  <P>
  <A NAME="Unicode">This dialog </A>allows you to set the name and unicode
  encoding of a given glyph. If you know the name of the glyph then FontForge
  can tell you the encoding (if you press Set From Name), similarly if you
  know the encoding then FontForge can tell you the name.
  <P>
  The name field contains a pull down list with (possibly) several synonyms
  for the name of this unicode code point.
  <P>
  It is possible to have one glyph assigned to two unicode code points (This
  is not recommended, but it is possible). If you wish to do this you may enter
  additional unicode values in the "<CODE>Alternate Unicode</CODE>" area (set
  the variation selector to 0).
  <P>
  Adobe has proposed an extension to OpenType to support unicode variation
  selectors in the 'cmap' table (traditionally they have been done as ligatures
  in the 'GSUB' table). If you wish to take advantage of this mechanism you
  can also use the "<CODE>Alternate Unicode/Variation</CODE>" section to add
  'cmap' data. If you wish the current glyph to be the default variation for
  this font (the one that appears in the unicode encoding subtable), then set
  the <CODE>Unicode Value</CODE> field above to the desired code point and
  add an entry with the same code point and the appropriate variation selector
  (as in the example above).
  <P>
  However if this glyph is not going to be the default glyph for this code
  point, then set the <CODE>Unicode Value </CODE>field to -1, while entering
  the appropriate code point and variation selector below.
  <P>
  The Glyph class field is for the opentype 'GDEF' table. You can usually leave
  it set to automatic. FontForge will then figure out the class, and whether
  it should be output into GDEF. You can see what FontForge does in
  <A HREF="showatt.html">View-&gt;Show ATT</A>.
  <P>
  The <CODE>[] Mark for Unlink, Remove Overlap Before Save</CODE> checkbox
  sounds absurdly complicated. Consider the glyphs Aring, Ccedilla, and Oogonek.
  In traditional design the accent of each of these glyphs will overlap the
  base letter. Unfortunately neither TrueType nor PostScript allows contours
  to intersect. You can solve this problem by unlinking the references that
  make up the glyph and then running Element-&gt;Remove Overlap. But that has
  problems of its own... now when you change the base letter (or the accent)
  the change will no longer be reflected in the composite glyph. This little
  checkbox neatly solves that problem. If the glyph is composed of references
  which overlap, and you wish to retain the references, but you wish it to
  be output without an overlap, simply check this box. Then when it comes time
  to save the font, ff will perform the unlink and then run remove overlap,
  save the font, and then restore the glyph to its original
  condition.<BR CLEAR=ALL>
  <P>
  <IMG SRC="charinfo-comment.png" WIDTH="307" HEIGHT="359" ALIGN="Right">You
  can assign an arbitrary (unicode) <A NAME="comment">comment</A> to the glyph.
  Simply type any text into this field. The comment is for your use, it will
  not go into any generated fonts. You may also assign a color to a glyph to
  make it stand out in the font view.<BR CLEAR=ALL>
  <P>
  <IMG SRC="charinfo-pos.png" WIDTH="359" HEIGHT="313" ALIGN="Right">There
  are 6 separate sub-dialogs to help you edit the
  <A NAME="features" HREF="lookups.html">lookups</A> of the
  <A HREF="gposgsub.html">GPOS and GSUB</A> tables (some of these data can
  be converted into various of Apple's AAT tables, particularly 'morx'). Lookups
  and their subtables are described in some detail
  <A HREF="overview.html#Lookups">here</A>, and may be manipulated and created
  with the <A HREF="fontinfo.html#Lookups">Element-&gt;Font Info</A> commmand.
  <P>
  The first of sub-dialogs is the alternate <A NAME="position">position</A>
  pane which allows you to associate certain modifications to a glyph's metrics
  with a feature in the GPOS table.
  <P>
  In the example at right the first lookup subtable (which is associated with
  the Scientific Inferiors feature) will move the y position of the glyph down
  by 900 em-units, while the second subtable will move it down by 560 em-units.
  Positioning subtables can also move glyphs horizontally and can adjust the
  horizontal and vertical advances of the glyph.
  You can also add device tables for pixel level corrections
  to these adjustments. Most subtables will use only a few of the possibilities
  open to them and FontForge generally hides unused columns -- but if you want
  to see them just turn off [*] Hide Unused Columns.
  <P>
  A new entry in the list may be created by pressing the &lt;New&gt; button
  and a popup menu will appear with all possible lookup subtables you could
  add data to.
  <P>
  The <A NAME="pairwise">pairwise</A> positioning sub-dialog allows you to
  change the positions of two glyphs when they occur next to one another --
  better know as kerning. I think the <A HREF="metricsview.html">Metrics View
  </A>provides a better place to do kerning, but you can do it here if you
  wish.<BR Clear=Right>
  <P>
  <IMG SRC="charinfo-subs.png" WIDTH="474" HEIGHT="315" ALIGN="Right"> A simple
  <A NAME="substitution">substitution</A> replaces one glyph with another.
  Here the glyph "one" has a series of substitutions to various glyphs depending
  on what lookup subtable is invoked.
  <P>
  The <A NAME="multiple">multiple</A> and alternate substitution sub-dialogs
  are very similar to this one except that they can take multiple glyph names.
  In a multiple substitution subtable each glyph is replaced by several other
  glyphs (sort of the reverse of a ligature), while in the alternate substitution
  sub-dialog each glyph is to be replaced by exactly one glyph from a list
  and the user is to be given a choice as to which glyph is to be chosen.
  <BLOCKQUOTE ID="lit">
    <TABLE>
      <TR VALIGN=BOTTOM>
	<TD>"Hello Rabbit," he said, "is that you?"
	  <P>
	  "Let's pretend it isn't," said Rabbit, "and see what happens."</TD>
	<TD>Winnie-The-Pooh<BR>
	  A. A. Milne, 1926</TD>
      </TR>
    </TABLE>
  </BLOCKQUOTE>
  <P>
  <BR Clear=Right>
  <P>
  <IMG SRC="charinfo-lig.png" WIDTH="411" HEIGHT="312" ALIGN="Right"> The
  <A NAME="ligature">ligature</A> pane allows you to tell FontForge that the
  current glyph is a ligature composed of several other glyphs. FontForge will
  sometimes be able to fill this in with the right default value, but not always.
  The value should be a list of postscript glyph names separated by spaces.
  If a glyph may be viewed as two different ligatures then they may both be
  specified in different lines. For example "ffi" may be viewed as a ligature
  of "f" "f" and "i" or of "ff" and "i".
  <P>
  <BR Clear=Right>
  <P>
  <IMG SRC="charinfo-counters.png" WIDTH="307" HEIGHT="409" ALIGN="Right">
  In complicated Asian glyphs, postscript has a mechanism for controlling the
  width of <A NAME="CounterMasks">counters</A> between stems. These are called
  counter mask
  hints<IMG SRC="newcountermask.png" WIDTH="282" HEIGHT="392" ALIGN="Left">.
  In Latin, Cyrillic, Greek fonts only glyphs like "m" are allowed to have
  counter masks, and only in very controlled conditions. See the description
  of <A HREF="hinting.html#Counter">counter masks</A>.<BR CLEAR=ALL>
  <P>
  <IMG SRC="charinfo-counters.png" WIDTH="307" HEIGHT="409" ALIGN="Right">
  Some <A NAME="components">glyphs</A> (ligatures, accented glyphs, Hangul
  syllables, etc.) are built up out of other glyphs (at least according to
  unicode). This pane of the dlg shows the components that Unicode says make
  up the current glyph, if those components are in the font then you can use
  FontForge's <KBD>Element-&gt;Build-&gt;Build Accented </KBD>or
  <KBD>Element-&gt;Build-&gt;Build Composite</KBD> commands to create the current
  glyph. The information displayed here is informative only, you may not change
  this field directly (it changes when you change the unicode value or glyph
  name associated with this glyph).<BR CLEAR=ALL>
  <P>
  <IMG SRC="charinfo-tex.png" ALIGN="Right" WIDTH="544" HEIGHT="364"> The
  <A NAME="TeX">TeX</A> pane allows you to specify glyph specific information
  used in TeX tmf files. The height and depth fields are often the same as
  the glyph's bounding box (if you don't fill these in that's what fontforge
  will use by default), but they should be corrected for optical distortion,
  so in glyphs like "o" these fields should be clipped to the x-height and
  baseline (ff will attempt to do this when you press <CODE>[Guess]</CODE>).
  <P>
  The Italic correction is used by both TeX and the new OpenType
  <A HREF="math.html#Italic">MATH</A> table. In the MATH table you may also
  specify a device table to correct rounding errors at small pixel sizes.
  <P>
  The Top Accent Position is another concept from the
  <A HREF="math.html#TopAccent">MATH table</A> and provides a horizontal position
  over which to position math accents (vertical positioning is done somewhere
  else).
  <P>
  For extremely tall glyphs the normal mechanisms for positioning superscripts
  are inappropriate and the <CODE>[] Is Extended Shape</CODE> checkbox alerts
  the typesetter to this fact.
  <P>
  The [Math Kerning] button brings up the <A HREF="math.html#MathKern">Math
  Kerning dialog</A> which gives you fine control over the placement of subscripts
  and superscripts near the glyph.<BR CLEAR=ALL>
  <H3>
    <A NAME="Variants">Variants </A>
  </H3>
  <P>
  <IMG SRC="charinfo-variants.png" WIDTH="545" HEIGHT="384" ALIGN="Right">There
  are two panes for variants, one for glyphs that get longer horizontally and
  one for glyphs that get longer vertically.
  <P>
  In mathmatical typesetting the size of a parenthesis will depend on the vertical
  size of the formula within that parenthesis. As formulae can be arbetarily
  complex they may be arbetarily tall, so there needs to be a way of making
  arbetarily big parentheses. This pane provides two mechanisms.
  <P>
  At the top you may specify a list of prebuilt glyphs each a little bigger
  than the one before.
  <P>
  Underneath you may specify a way of building really big parentheses by combining
  several component glyphs. See the description of this in the
  <A HREF="math.html#GlyphConstruction">MATH Info dialog </A>for more
  details.<BR CLEAR="ALL">
  <H3>
    <A NAME="TileSize"><IMG SRC="charinfo-tilesize.png" WIDTH="445" HEIGHT="374"
	ALIGN="Right">Tile Size</A>
  </H3>
  <P>
  This only applies when editing type3 fonts. Even then it is only meaningful
  if the current glyph is used as a
  <A HREF="multilayer.html#Patterns">pattern</A> in some other glyph.
  <P>
  When a glyph is used as a pattern, the size of the pattern tile defaults
  to the bounding box of the glyph used. This means there will be no whitespace
  around the tile. Sometimes that is desirable (if the tiles are to looks
  as though they touch), sometimes it is not. This provides control over the
  whitespace that surrounds the drawn region of the tile.
  <P>
  You can specify that you want a constant margin of white space around all
  edges of the tile, or you can specify explicitly the coordinates of the
  tile.<BR CLEAR="ALL">
  <P>
  The Next and Prev buttons allow you to move from one glyph to the next (if,
  for example, you need to enter encodings for a range of glyphs).
  <P>
  The Cancel button now cancels all changes made with this instance of the
  dialog.<BR Clear=Right>
  <BR CLEAR=ALL>
  <P>
  See Also:
  <UL>
    <LI>
      <A HREF="fontinfo.html">The font info dialog</A>
    <LI>
      <A HREF="getinfo.html">The get info dialogs</A>
    <LI>
      <A HREF="math.html">The MATH info dialog</A>
  </UL>
  <P ALIGN=Center>
  -- <A HREF="elementmenu.html">Prev</A> -- <A HREF="overview.html">TOC</A>
  -- <A HREF="elementmenu.html">Next</A> --
</DIV>
</BODY></HTML>
